1. Field of the Invention
The present invention relates to the transmission of data in various types of communication systems, including local area networks (LANs) and wide area networks (WANs).
2. Related Art
In such communication systems, the data being transferred between an origin and a destination is formatted into specific data packets in order to better transmit that data. Packet communication requires some processing on every packet, such as searching (e.g., to find a packet's route) and sorting (e.g., to allocate resources). The high speed and small packet size used on broadband networks increase the processing required for these per-packet functions, making systems that incorporate parallel processing structures attractive.
Protocols associated with the transmission of the data are often used to assemble individual packet information to provide useful functions or to reduce storage and improve communication efficiency. Errors can occur in transmitting such data, however, causing the data packets to be corrupted, out of order, or duplicated when received.
Processing required for assembly depends on how the network and receiver process packets. The effect of a network on a stream of packets depends. on whether the network is configured to provide "guaranteed" or "best-effort" service. Typically, a network may be configured to operate in a "guaranteed" service format, without excessive complexity, then to operate in its excess bandwidth with a "best-effort" service format.
In a "guaranteed" service format, a network allocates its resources (i.e., reservation of bandwidth) to insure data arrives without congestion loss or misordering, so that data is received in the order sent, with only jitter introduced by the network. A network with a conventional "guaranteed" service format is designed to provide service with a data packet loss of better than 10.sup.-6. If a network reaches its capacity in transmitting or handling data and thus is unable to handle additional data, any additional connection into the network would be refused. A "guaranteed" service format simplifies the assembly function. For example, in an asynchronous transfer mode (ATM) operation (which guarantees the ordering of the data), packet descriptors in each cell are not required. Consequently, the amount of data in each data packet can be much greater in an ATM operation. However, a "guaranteed" service format may reduce the total throughput of data transmission and increase set-up latency. Throughput can be reduced as a result of the network's resources sharing/allocation being more constrained as the network reaches its capacity; and of limitations on routing (e.g., no multi-path routing) inherent in the network. Set-up latency of at least the first data packet may increase, because any reliable allocation of the network's resources requires end-to-end communication before transmission of the data can begin.
With a "best-effort" service format, data packet loss is tolerated. Also, a "best-effort" service formatted network tolerates more corrupted, misordered, or duplicated data packets. This service format, however, allows the flexibility of being able to drop or re-route packets during congestion, thereby allowing the network to be run at a higher utilization level. Moreover, specific resource reservation for the transmission of data is not required. Thus, the network in a "best-effort" service format can offer lower set-up latency. Overall, "best effort" services can lower overall system costs, provided the assembly problems caused by misordering and congestion loss can be economically dealt with.
The effect of receiver protocol processing on a stream of packets depends on whether the receiver assembles data physically or virtually.
With physical assembly, the receiver buffers data in a reorder buffer until all the previous data have arrived. This buffering eliminates the need for detection of duplicates because duplicates can be written multiple times into the buffer without affecting protocol processing. Physical assembly simplifies the assembly functions, but reduces average throughput and increases worst-case latency. Less restrictive forms of assembly (i.e., virtual assembly) can improve throughput and reduce latency. In comparing physical assembly to virtual assembly, individual average throughputs and set-up latencies are comparable. However, in comparing the performance level of virtual assembly with physical assembly in worst-case scenarios, the performance level of virtual assembly generally is better.
With cut-through processing, the receiver processes data as it arrives, with, at most, a simple FIFO queue. Although some protocol functions cannot operate in this cut-through mode (e.g., cipher-block-chained encryption), it is often possible to provide almost equal functionality without the ordering constraints. Cut-through processing requires fewer buffers, increases throughput, and reduces worst-case latency. On the other hand, cut-through processing increases assembly function complexity.